﻿using System;
namespace Pay.DTO.hfnative {
	/// <summary>
	/// 扫码APP支付查询请求
	/// </summary>
	public class hf_native_query : hf_native_head {
		public hf_native_query() {
		}

		/// <summary>
		/// 交易类型
		/// </summary>
		public string tradeType { get { return "cs.trade.single.query"; } }
		/// <summary>
		/// 版本号
		/// </summary>
		public string version {
			get { return "1.3"; }
		}
		/// <summary>
		/// 商户订单号：商户系统内部的订单号,32个字符内、可包含字母, 确保在商户系统唯一
		/// </summary>
		public string outTradeNo { get; set; }
		/// <summary>
		/// 查询类型：1：支付订单  3：退款
		/// </summary>
		public string queryType { get; set; }
	}

	/// <summary>
	/// 扫码APP支付查询响应
	/// </summary>
	public class hf_native_query_result : hf_pay_resp {
		/// <summary>
		/// 支付使用的第三方支付渠道
		/// </summary>
		public string channel { get; set; }
		/// <summary>
		/// 支付通道类型
		/// </summary>
		public string payChannelTypeCode { get; set; }
		/// <summary>
		/// 终端类型:n
		/// </summary>
		public string terminalType { get; set; }
		/// <summary>
		/// 操作员:n
		/// </summary>
		public string cashierName { get; set; }
		/// <summary>
		/// 商户订单号
		/// </summary>
		public string outTradeNo { get; set; }
		/// <summary>
		/// 银行订单号
		/// </summary>
		public string outChannelNo { get; set; }
		/// <summary>
		/// 商品或支付单简要描述
		/// </summary>
		public string body { get; set; }
		/// <summary>
		/// 货币类型:CNY
		/// </summary>
		public string currency { get; set; }
		/// <summary>
		/// 借贷标识:B-余额 D-借记卡 C-信用卡 M-借贷合一卡
		/// </summary>
		public string cardType { get; set; }
		/// <summary>
		/// 订单交易金额
		/// </summary>
		public decimal amount { get; set; }
		/// <summary>
		/// 订单交易时间,格式为：yyyyMMddHHmmss
		/// </summary>
		public string transTime { get; set; }
		/// <summary>
		/// 附言
		/// </summary>
		public string postscript { get; set; }
		/// <summary>
		/// 商品的标题，该参数最长为 32 个 Unicode 字符
		/// </summary>
		public string subject { get; set; }
		/// <summary>
		/// 订单状态:"01：未支付 02：已支付03：已冲正04：已关闭05：转入退款09：支付失败10：订单超时"
		/// </summary>
		public string status { get; set; }
		/// <summary>
		/// 商户退款订单号；退款查询类型时有返回
		/// </summary>
		public string outRefundNo { get; set; }
		/// <summary>
		/// 支付渠道返回的退款单号；退款查询类型时有返回
		/// </summary>
		public string channelRefundNo { get; set; }
		/// <summary>
		/// 退款时间；退款查询类型时有返回,格式为：yyyyMMddHHmmss
		/// </summary>
		public string outRefundTime { get; set; }
		/// <summary>
		/// 退款状态；退款查询类型时有返回01：退款申请02：退款成功03：退款失败
		/// </summary>
		public string refundStatus { get; set; }
	}
}
